home *** CD-ROM | disk | FTP | other *** search
/ Aminet 15 / Aminet 15 - Nov 1996.iso / Aminet / dev / basic / ace24dist.lha / ace24.lha / include / devices / serial.h < prev    next >
C/C++ Source or Header  |  1996-09-10  |  7KB  |  176 lines

  1. #ifndef DEVICES_SERIAL_H
  2. #define DEVICES_SERIAL_H 1
  3. /*
  4. ** serial.h for ACE Basic
  5. **
  6. ** Note: Translated to ACE by ConvertC2ACE
  7. **       @ MapMeadow Software, Nils Sjoholm
  8. **
  9. **
  10. ** Date: 09/03/95
  11. **
  12. **
  13. */
  14.  
  15. /*
  16. ** This are the StructPointer defines for serial.h
  17. */
  18. #ifndef IOExtSerPtr
  19. #define IOExtSerPtr ADDRESS
  20. #endif
  21. #ifndef IOTArrayPtr
  22. #define IOTArrayPtr ADDRESS
  23. #endif
  24. /*
  25. ** End of StructPointer defines for serial.h
  26. */
  27.         
  28. #ifndef   EXEC_IO_H
  29. #include <exec/io.h>
  30. #endif /* EXEC_IO_H */
  31.  
  32.  
  33.            /* array of termination char's */
  34.            /* to use, see serial.doc setparams */
  35.  
  36.  STRUCT  IOTArray  
  37.     LONGINT TermArray0 
  38.     LONGINT TermArray1 
  39. END STRUCT 
  40.  
  41.  
  42. #define SER_DEFAULT_CTLCHAR &H11130000  /* default chars for xON, xOFF */
  43. /* You may change these via SETPARAMS.  At this time,  parity is not
  44.    calculated _for xON/xOFF characters.  You must supply them with the
  45.    desired parity. */
  46.  
  47. /******************************************************************/
  48. /* CAUTION !!  IF YOU ACCESS the serial.device,  you MUST (!!!!) use an
  49.    IOExtSer-sized structure or you may overlay innocent memory !! */
  50. /******************************************************************/
  51.  
  52.  STRUCT  IOExtSer  
  53.     IOStdReq IOSer 
  54.  
  55.    LONGINT   io_CtlChar     /* control char's (order = xON, xOFF, INQ, ACK) */
  56.    LONGINT   io_RBufLen     /* length in bytes of serial port's read buffer */
  57.    LONGINT   io_ExtFlags    /* additional serial flags (see bitdefs below) */
  58.    LONGINT   io_Baud    /* baud rate requested (true baud) */
  59.    LONGINT   io_BrkTime     /* duration of break signal in MICROseconds */
  60.    IOTArray io_TermArray  /* termination character array */
  61.    BYTE    io_ReadLen     /* bits per read character (# of bits) */
  62.    BYTE    io_WriteLen    /* bits per write character (# of bits) */
  63.    BYTE    io_StopBits    /* stopbits for read (# of bits) */
  64.    BYTE    io_SerFlags    /* see SerFlags bit definitions below  */
  65.    SHORTINT   io_Status 
  66. END STRUCT 
  67.    /* status of serial port,  as follows:
  68. *          BIT  ACTIVE  FUNCTION
  69. *           0    ---    reserved
  70. *           1    ---    reserved
  71. *           2    high   Connected to parallel "select" on the A1000.
  72. *               Connected to both the parallel "select" and
  73. *               serial "ring indicator" pins on the A500
  74. *               & A2000.  Take care when making cables.
  75. *           3    low    Data Set Ready
  76. *           4    low    Clear To Send
  77. *           5    low    Carrier Detect
  78. *           6    low    Ready To Send
  79. *           7    low    Data Terminal Ready
  80. *           8    high   read overrun
  81. *           9    high   break sent
  82. *          10    high   break received
  83. *          11    high   transmit x-OFFed
  84. *          12    high   receive x-OFFed
  85. *       13-15       reserved
  86. */
  87.  
  88. #define   SDCMD_QUERY       CMD_NONSTD  /* $09 */
  89. #define   SDCMD_BREAK          (CMD_NONSTD+1)   /* $0A */
  90. #define   SDCMD_SETPARAMS      (CMD_NONSTD+2)   /* $0B */
  91.  
  92.  
  93. #define SERB_XDISABLED  7   /* io_SerFlags xOn-xOff feature disabled bit */
  94. #define SERF_XDISABLED  (128)  /*    "     xOn-xOff feature disabled mask */
  95. #define SERB_EOFMODE    6   /*    "     EOF mode enabled bit */
  96. #define SERF_EOFMODE    (64)  /*    "     EOF mode enabled mask */
  97. #define SERB_SHARED 5   /*    "     non-exclusive access bit */
  98. #define SERF_SHARED (32)  /*    "     non-exclusive access mask */
  99. #define SERB_RAD_BOOGIE 4   /*    "     high-speed mode active bit */
  100. #define SERF_RAD_BOOGIE (16)  /*    "     high-speed mode active mask */
  101. #define SERB_QUEUEDBRK  3   /*    "     queue this Break ioRqst */
  102. #define SERF_QUEUEDBRK  (8)  /*    "     queue this Break ioRqst */
  103. #define SERB_7WIRE  2   /*    "     RS232 7-wire protocol */
  104. #define SERF_7WIRE  (4)  /*    "     RS232 7-wire protocol */
  105. #define SERB_PARTY_ODD  1   /*    "     parity feature enabled bit */
  106. #define SERF_PARTY_ODD  (2)  /*    "     parity feature enabled mask */
  107. #define SERB_PARTY_ON   0   /*    "     parity-enabled bit */
  108. #define SERF_PARTY_ON   (1)  /*    "     parity-enabled mask */
  109.  
  110. /* These now refect the actual bit positions in the io_Status SHORTINT */
  111. #define IO_STATB_XOFFREAD 12       /* io_Status receive currently xOFF'ed bit */
  112. #define IO_STATF_XOFFREAD (4096)  /*    "     receive currently xOFF'ed mask */
  113. #define IO_STATB_XOFFWRITE 11      /*    "     transmit currently xOFF'ed bit */
  114. #define IO_STATF_XOFFWRITE (2048) /*    "     transmit currently xOFF'ed mask */
  115. #define IO_STATB_READBREAK 10      /*    "     break was latest input bit */
  116. #define IO_STATF_READBREAK (1024) /*    "     break was latest input mask */
  117. #define IO_STATB_WROTEBREAK 9      /*    "     break was latest output bit */
  118. #define IO_STATF_WROTEBREAK (512) /*    "     break was latest output mask */
  119. #define IO_STATB_OVERRUN 8     /*    "     status SHORTINT RBF overrun bit */
  120. #define IO_STATF_OVERRUN (256)    /*    "     status SHORTINT RBF overrun mask */
  121.  
  122.  
  123. #define SEXTB_MSPON 1   /* io_ExtFlags. Use mark-space parity,  */
  124.                 /*      instead of odd-even. */
  125. #define SEXTF_MSPON (2)  /*    "     mark-space parity mask */
  126. #define SEXTB_MARK  0   /*    "     if mark-space,  use mark */
  127. #define SEXTF_MARK  (1)  /*    "     if mark-space,  use mark mask */
  128.  
  129.  
  130. #define SerErr_DevBusy         1
  131. #define SerErr_BaudMismatch    2 /* baud rate not supported by hardware */
  132. #define SerErr_BufErr          4 /* Failed to allocate new read buffer */
  133. #define SerErr_InvParam        5
  134. #define SerErr_LineErr         6
  135. #define SerErr_ParityErr       9
  136. #define SerErr_TimerErr       11 /*(See the serial/OpenDevice autodoc)*/
  137. #define SerErr_BufOverflow    12
  138. #define SerErr_NoDSR          13
  139. #define SerErr_DetectedBreak  15
  140.  
  141.  
  142. #ifdef DEVICES_SERIAL_H_OBSOLETE
  143. #define SerErr_InvBaud         3    /* unused */
  144. #define SerErr_NotOpen         7    /* unused */
  145. #define SerErr_PortReset       8    /* unused */
  146. #define SerErr_InitErr        10    /* unused */
  147. #define SerErr_NoCTS          14    /* unused */
  148.  
  149. /* These defines refer to the HIGH ORDER byte of io_Status.  They have
  150.    been replaced by the new,  corrected ones above */
  151. #define IOSTB_XOFFREAD  4   /* iost_hob receive currently xOFF'ed bit */
  152. #define IOSTF_XOFFREAD  (16)  /*    "     receive currently xOFF'ed mask */
  153. #define IOSTB_XOFFWRITE 3   /*    "     transmit currently xOFF'ed bit */
  154. #define IOSTF_XOFFWRITE (8)  /*    "     transmit currently xOFF'ed mask */
  155. #define IOSTB_READBREAK 2   /*    "     break was latest input bit */
  156. #define IOSTF_READBREAK (4)  /*    "     break was latest input mask */
  157. #define IOSTB_WROTEBREAK 1  /*    "     break was latest output bit */
  158. #define IOSTF_WROTEBREAK (2) /*    "     break was latest output mask */
  159. #define IOSTB_OVERRUN   0   /*    "     status SHORTINT RBF overrun bit */
  160. #define IOSTF_OVERRUN   (1)  /*    "     status SHORTINT RBF overrun mask */
  161.  
  162. #define IOSERB_BUFRREAD 7   /* io_Flags from read buffer bit */
  163. #define IOSERF_BUFRREAD (128)  /*    "     from read buffer mask */
  164. #define IOSERB_QUEUED   6   /*    "     rqst-queued bit */
  165. #define IOSERF_QUEUED   (64)  /*    "     rqst-queued mask */
  166. #define IOSERB_ABORT    5   /*    "     rqst-aborted bit */
  167. #define IOSERF_ABORT    (32)  /*    "     rqst-aborted mask */
  168. #define IOSERB_ACTIVE   4   /*    "     rqst-qued-or-current bit */
  169. #define IOSERF_ACTIVE   (16)  /*    "     rqst-qued-or-current mask */
  170. #endif
  171.  
  172.  
  173. #define SERIALNAME     "serial.device"
  174.  
  175. #endif /* DEVICES_SERIAL_H */
  176.